SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROC [dbo].[SP_TXMVTO_CNTB_Q29]
/*-------------------------------------------------------------------*/
/*----- Empresa           : OFISIS S.A.                          ----*/
/*----- Cliente           : OFISIS S.A.                          ----*/
/*----- Sistema           : Contabilidad                         ----*/
/*----- Modulo            : Empresa                              ----*/
/*----- Programa          : Reporte Libro Mayor General          ----*/
/*----- Nombre            : SP_TXMVTO_CNTB_Q13                   ----*/
/*----- Script            : TXMVTO_CNTB                          ----*/
/*----- Desarrollado por  : Israel Estrada Polanco               ----*/
/*----- Fecha             : 11/10/1997                           ----*/
/*----- Base de Datos     : MS SQL Server                        ----*/
/*----- Version BD        : 2000                                 ----*/
/*-------------------------------------------------------------------*/
/*-------------------------------------------------------------------*/
/*----- Drop proc SP_TXMVTO_CNTB_Q29                             ----*/
/*----- Grant all on SP_TXMVTO_CNTB_Q29 to PUBLIC                ----*/
/*----- SP_TXMVTO_CNTB_Q29                                       ----*/
/*-------------------------------------------------------------------*/
/*EXEC SP_TXMVTO_CNTB_Q13 '01', 1, 2000,1,3, 'SOL', '001', '', '12101', '12901','','','',5,'CUD', 'HOLA'*/

@ISCO_EMPR                TD_VC_002,
@INNU_CNTB_EMPR           TD_IN_001,
@INNU_ANNO                TD_IN_004_ANNO,
@INNU_MESE_INIC           TD_IN_002_MESE,
@INNU_MESE_FINA           TD_IN_002_MESE,
@ISCO_MONE                TD_VC_003,
@ISCO_UNID_CNTB           TD_VC_003,
@ISCO_OPRC_CNTB           TD_VC_003,
@ISCO_CNTA_EMP1           TD_VC_020_CNTA,
@ISCO_CNTA_EMP2           TD_VC_020_CNTA,
@ISTI_AUXI_EMPR           TD_VC_001,
@ISCO_AUXI_EMP1           TD_VC_020,
@ISCO_AUXI_EMP2           TD_VC_020,
@INNV_INFO_CNTA           TD_IN_001,
@INNV_QUIE_SUPE           TD_IN_001,
@ISTI_REPO                TD_VC_003,
@ISNO_USUA                TD_VC_050,
@ISCA_WHER                Varchar(8000)

--With Recompile
As

/*---------------------------------------
   Creando tabla temporal para el reporte 
  ---------------------------------------*/
Create Table #TWMVTO_CNTB_Q13_1 
       (NU_MESE_QUIE      int NULL,
	CO_CNTA_QUI1      Varchar(20) NULL,
	CO_CNTA_QUI2      Varchar(1) NULL,
	CO_CNTA_QUI3      Varchar(1) NULL,
        CO_CNTA_EMPR      Varchar(20) NULL,
        DE_CNTA_EMPR      Char(50) NULL,
	TO_CARG	  	  Numeric(16,4)	   NULL,
        TO_ABON           Numeric(16,4)    NULL,
	NU_MESE		  int NULL,
        FE_ASTO_CNTB      Datetime NULL,
        NU_SECU           int NULL,
        CN_CNTB_EMP1      CHAR(10) NULL,
	TI_AUXI_EMPR	  Char(01) NULL,
        CO_AUXI_EMPR      Varchar(20) NULL,
        CO_UNID_CNTB      Char(03) NULL,
        CO_OPRC_CNTB      Char(03) NULL, 
        NU_ASTO           CHAR(10) NULL,
	TI_DOCU           Char(03) NULL,
	NU_DOCU		  Char(20) NULL,
	FE_DOCU		  Datetime NULL,       
	IM_MVTO_ORIG	  Numeric(16,4)    NULL,
        DE_GLOS           Char(100) NULL,
 	DEBE		  Numeric(16,4)	   NULL,
	HABER	 	  Numeric(16,4)	   NULL, 
	CO_TABL_ORIG      INT NULL, 
	CO_CLAV_TAOR      VARCHAR(100) NULL,
	CO_ORDE_SERV	char(20) NULL )

Declare 
/* Variables a usar en el proceso	*/
        @VSTI_AUXI      TD_VC_010,
        @CSCO_CNTA      TD_VC_020_CNTA,
	@CSNO_CNTA      TD_VC_050,
        @CNIM_CARG      TD_NU_016_004,
        @CNIM_ABON      TD_NU_016_004,
        @VNNU_MESE      TD_IN_002_MESE,
        @VNNU_SECU      TD_IN_001,
        @VSCO_CNTA      TD_VC_020_CNTA,
        @VSCO_UNID      TD_VC_003,
        @VSCO_OPRC      TD_VC_003,
        @VSNU_ASTO      TD_VC_010,
        @VSTI_DOCU      TD_VC_003,
        @VSCO_MONE_CONT TD_VC_003,
	@VSNU_DOCU	TD_VC_020,
        @VDFE_DOCU      TD_DT_001,
	@VSDE_GLOS	TD_VC_100,         @VNIM_DEBE      TD_NU_016_004,
	@VNIM_HABE      TD_NU_016_004,
 	@VSDE_CMD1      Char(255),
	@VSDE_CMD2      Char(255),
        @VNIM_SALD_CARG TD_NU_016_004,        
	@VNIM_SALD_ABON TD_NU_016_004,
        @VNIM_CARG_INIC TD_NU_016_004,
        @VNIM_ABON_INIC TD_NU_016_004,
        @VNTO_CARG_GENE TD_NU_016_004,
        @VNTO_ABON_GENE TD_NU_016_004,
	@VSNU_MESE      Varchar,
	@VSNU_ANNO      Varchar,
	@VSNV_INFO_CNTA Varchar,
	@VSNU_CNTB_EMPR Varchar,
	@CSIM_CARG      Varchar,
	@CSIM_ABON      Varchar,
        @CNNU_MESE      TD_IN_002_MESE,
        @VNSU_DEBE      TD_NU_016_004,
        @VNSU_HABE      TD_NU_016_004

/*----------- R E P O R T E S   D E   C U E N T A S ------------*/
Select @VSCO_MONE_CONT = CO_MONE From TTCNTB_EMPR Where CO_EMPR = @ISCO_EMPR And NU_CNTB_EMPR = @INNU_CNTB_EMPR

If @ISCO_MONE = @VSCO_MONE_CONT 
   Begin

    Select @VNNU_MESE = @INNU_MESE_INIC
    Select @VSNU_ANNO = Convert(Varchar, @INNU_ANNO)
    Select @VSNU_CNTB_EMPR = Convert(Varchar, @INNU_CNTB_EMPR)
    Select @VSNV_INFO_CNTA = Convert(Varchar, @INNV_INFO_CNTA)

    While @VNNU_MESE <= @INNU_MESE_FINA
      Begin
        If @ISCO_CNTA_EMP1 = '' And @ISCO_CNTA_EMP2 = ''
        Declare CU_TXMVTO_CNTB_Q13_1 Cursor
	    For
         Select  CUENTA = T2.CO_CNTA_EMPR, NOMBRE = MAX(RTRIM(T2.DE_CNTA_EMPR)),
                 CARGO_SOLES = Isnull(SUM(ISNULL(T1.IM_CARG_CNTB,0)), 0),
                 ABONO_SOLES = Isnull(SUM(ISNULL(T1.IM_ABON_CNTB,0)), 0)
         From    TASALD_EMPR T1
		   Left Outer Join TMPLAN_EMPR T2
		   On T2.CO_EMPR = T1.CO_EMPR and
			T2.CO_EMPR = 9999 and
            T2.CO_CNTA_EMPR = T1.CO_CNTA_EMPR
         Where	T1.CO_EMPR = @ISCO_EMPR and
			T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR and
			T1.NU_ANNO	= @INNU_ANNO and
   	        T1.NU_MESE	< @VNNU_MESE and
			T1.TI_AUXI_EMPR IS NULL and
			T1.CO_AUXI_EMPR IS NULL and
			T1.CO_ORDE_SERV IS NULL 
         Group By T2.CO_CNTA_EMPR
         Order By T2.CO_CNTA_EMPR
 
        Else If @ISCO_CNTA_EMP1 != '' And @ISCO_CNTA_EMP2 != ''
	     Begin 
	     Select @ISCO_CNTA_EMP1 = SubString(@ISCO_CNTA_EMP1, 1, @INNV_QUIE_SUPE) 
	     Select @ISCO_CNTA_EMP2 = SubString(@ISCO_CNTA_EMP2, 1, @INNV_QUIE_SUPE) 
	     Select @ISCO_CNTA_EMP2 = Convert(Varchar(20), Convert(Int, @ISCO_CNTA_EMP2) + 1)
             Declare CU_TXMVTO_CNTB_Q13_1 Cursor
	     For
            Select  CUENTA = T2.CO_CNTA_EMPR, NOMBRE = MAX(RTRIM(T2.DE_CNTA_EMPR)),
                        CARGO_SOLES = Isnull(SUM(ISNULL(T1.IM_CARG_CNTB,0)), 0),  
                        ABONO_SOLES = Isnull(SUM(ISNULL(T1.IM_ABON_CNTB,0)), 0)
            From    TASALD_EMPR T1
			  Left Outer Join TMPLAN_EMPR T2
			  On T2.CO_EMPR = T1.CO_EMPR and
			  T2.CO_EMPR = 9999 and
              T2.CO_CNTA_EMPR = T1.CO_CNTA_EMPR
		    Where	T1.CO_EMPR = @ISCO_EMPR and
            T1.CO_CNTA_EMPR Between @ISCO_CNTA_EMP1 And @ISCO_CNTA_EMP2 And
			T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR and
			T1.NU_ANNO	= @INNU_ANNO and
	 		T1.NU_MESE	< @VNNU_MESE  and
			T1.TI_AUXI_EMPR IS NULL and
			T1.CO_AUXI_EMPR IS NULL and
			T1.CO_ORDE_SERV IS NULL 
            Group By T2.CO_CNTA_EMPR
            Order By T2.CO_CNTA_EMPR
		End 

        Open CU_TXMVTO_CNTB_Q13_1
        Fetch CU_TXMVTO_CNTB_Q13_1 Into @CSCO_CNTA, @CSNO_CNTA, @CNIM_CARG, @CNIM_ABON
        While @@Fetch_status = 0
	Begin

			Select @CSIM_CARG = Convert(Varchar, @CNIM_CARG)
			Select @CSIM_ABON = Convert(Varchar, @CNIM_ABON)
			Select @VSNU_MESE = Convert(Varchar, @VNNU_MESE)

			
			/*GRABA LOS VOUCHERS*/
                        EXEC("Insert Into #TWMVTO_CNTB_Q13_1(NU_MESE_QUIE, " + 
			"CO_CNTA_QUI1, CO_CNTA_QUI2, CO_CNTA_QUI3," + 
			"CO_CNTA_EMPR, DE_CNTA_EMPR, " +                         "TO_CARG,TO_ABON,NU_MESE,FE_ASTO_CNTB,NU_SECU, " +
                        "CN_CNTB_EMP1,TI_AUXI_EMPR,CO_AUXI_EMPR,CO_UNID_CNTB, " +
                        "CO_OPRC_CNTB,NU_ASTO,TI_DOCU,NU_DOCU,FE_DOCU,IM_MVTO_ORIG,DE_GLOS,DEBE,HABER, " +
			"CO_TABL_ORIG , CO_CLAV_TAOR, CO_ORDE_SERV ) " +
			"Select	Convert(Int, '" + @VSNU_MESE + "'), " + 
			"Replicate(' ', Datalength( '" + @CSCO_CNTA + "')) + '" + @CSCO_CNTA + "', '1', '1', '" +
			@CSCO_CNTA + "', '" + @CSNO_CNTA +  "'," + 
			"Convert(Numeric(16,4), '" + @CSIM_CARG + "')," + "Convert(Numeric(16,4), '" +  @CSIM_ABON + "'), " +
			"NU_MESE, FE_ASTO_CNTB, NU_SECU, CO_CNTA_EMPR, TI_AUXI_EMPR, " +         
                        "CO_AUXI_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO, " +
                        "TI_DOCU, NU_DOCU, FE_DOCU, Round(IsNull(IM_MVTO_ORIG,0),2), DE_GLOS, " +
                        "(ASCII(TI_OPER)/67)*Round(IsNull(IM_MVTO_CNTB,0),2), " +
                        "(65/ASCII(TI_OPER))*Round(IsNull(IM_MVTO_CNTB,0),2), " +
			"CO_TABL_ORIG , CO_CLAV_TAOR, CO_ORDE_SERV  " +
                        "From TXMVTO_CNTB " + 
			"Where	(RTRIM(LTRIM(CO_EMPR)) = '" + @ISCO_EMPR + "' and " +
				"RTRIM(LTRIM(Convert(Varchar, NU_CNTB_EMPR))) = RTRIM(LTRIM('" + @VSNU_CNTB_EMPR + "')) and " +
				"RTRIM(LTRIM(Convert(Varchar, NU_ANNO))) = RTRIM(LTRIM('" + @VSNU_ANNO + "')) and " +
				"RTRIM(LTRIM(Convert(Varchar, NU_MESE))) = RTRIM(LTRIM('" + @VSNU_MESE + "')) and " +
                                "CO_CNTA_EMPR = RTRIM(LTRIM('" + @CSCO_CNTA + "'))  and " +
				"RTRIM(LTRIM(Convert(Varchar,datalength(rtrim(CO_CNTA_EMPR))))) = RTRIM(LTRIM('" + @VSNV_INFO_CNTA + "')) And  " +
				"SI_MVTO_CNTB = 'APR' ) " + @ISCA_WHER)

                if (@CNIM_CARG != 0) or (@CNIM_ABON != 0)/*GRABA LOS SALDOS INICIALES SI NO SE ENCONTRO REGISTROS EN EL INSERT SELECT ROWCOUNT() */
                  if @@rowcount = 0 
                     if (datalength(rtrim(ltrim(@CSCO_CNTA))) = @INNV_INFO_CNTA) And ((@CNIM_CARG IS NOT NULL) or (@CNIM_ABON IS NOT NULL))
	                Insert Into #TWMVTO_CNTB_Q13_1( NU_MESE_QUIE, 
				CO_CNTA_QUI1, CO_CNTA_QUI2, CO_CNTA_QUI3, 
				CO_CNTA_EMPR, DE_CNTA_EMPR, 
        	                TO_CARG,TO_ABON,NU_MESE ,FE_ASTO_CNTB,NU_SECU, 
	                        CN_CNTB_EMP1,TI_AUXI_EMPR,CO_AUXI_EMPR,CO_UNID_CNTB,
	                        CO_OPRC_CNTB,NU_ASTO,TI_DOCU,NU_DOCU,FE_DOCU,IM_MVTO_ORIG,DE_GLOS,DEBE,HABER,
				CO_TABL_ORIG , CO_CLAV_TAOR, CO_ORDE_SERV )
			 values( @VNNU_MESE, 
				Replicate(' ', Datalength(@CSCO_CNTA)) + @CSCO_CNTA, '1', '1',
				@CSCO_CNTA, @CSNO_CNTA, @CNIM_CARG, @CNIM_ABON,NULL, 
	                        NULL, NULL, @CSCO_CNTA, NULL,  NULL, NULL, NULL, NULL,
	                        NULL, NULL, NULL, NULL,NULL, NULL,NULL, NULL , NULL, NULL )
			/*------CASO CUENTAS NO ANALITICAS GRABA SOLO SALDOS ANTERIORES--------*/
                     if (datalength(rtrim(ltrim(@CSCO_CNTA))) != @INNV_INFO_CNTA) 
	                Insert Into #TWMVTO_CNTB_Q13_1( NU_MESE_QUIE, 
				CO_CNTA_QUI1, CO_CNTA_QUI2, CO_CNTA_QUI3,
				CO_CNTA_EMPR, DE_CNTA_EMPR, 
        	                TO_CARG,TO_ABON,NU_MESE ,FE_ASTO_CNTB,NU_SECU, 
	                        CN_CNTB_EMP1,TI_AUXI_EMPR,CO_AUXI_EMPR,CO_UNID_CNTB,
	                        CO_OPRC_CNTB,NU_ASTO,TI_DOCU,NU_DOCU,FE_DOCU,IM_MVTO_ORIG,DE_GLOS,DEBE,HABER,
				CO_TABL_ORIG , CO_CLAV_TAOR, CO_ORDE_SERV )
			 values( @VNNU_MESE, 
				Replicate(' ', Datalength(@CSCO_CNTA)) + @CSCO_CNTA, '1', '2',
				@CSCO_CNTA, @CSNO_CNTA, @CNIM_CARG, @CNIM_ABON,NULL, 
	                        NULL, NULL, @CSCO_CNTA, NULL,  NULL, NULL, NULL, NULL,
	                        NULL, NULL, NULL, NULL,NULL, NULL,NULL, NULL , NULL, NULL )
                Fetch CU_TXMVTO_CNTB_Q13_1 Into @CSCO_CNTA, @CSNO_CNTA, @CNIM_CARG, @CNIM_ABON
	End
        Close CU_TXMVTO_CNTB_Q13_1
     Deallocate CU_TXMVTO_CNTB_Q13_1

     Select @VNNU_MESE = @VNNU_MESE + 1     End

End
/*--------- D I F E R E N T E    A  L A  M O N E D A  D E  L A  C O N T A B I L I D A D ------------*/
Else If	@ISCO_MONE != @VSCO_MONE_CONT 
Begin

    Select @VNNU_MESE = @INNU_MESE_INIC
    Select @VSNU_ANNO = Convert(Varchar, @INNU_ANNO)
    Select @VSNU_CNTB_EMPR = Convert(Varchar, @INNU_CNTB_EMPR)
    Select @VSNV_INFO_CNTA = Convert(Varchar, @INNV_INFO_CNTA)
    While @VNNU_MESE <= @INNU_MESE_FINA
      Begin

        If @ISCO_CNTA_EMP1 = '' And @ISCO_CNTA_EMP2 = ''
        Declare CU_TXMVTO_CNTB_Q13_1 Cursor
    	For
		Select  CUENTA = T2.CO_CNTA_EMPR, NOMBRE = MAX(RTRIM(T2.DE_CNTA_EMPR)),
                        CARGO_ORIGEN = Isnull(SUM(ISNULL(T1.IM_CARG_ORIG,0)), 0),  
                        ABONO_ORIGEN = Isnull(SUM(ISNULL(T1.IM_ABON_ORIG,0)), 0)
		From    TMPLAN_EMPR T2
   		  Left Outer Join TASALD_EMPR T1
		  ON T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR and
			T1.NU_ANNO	= @INNU_ANNO and
			T1.NU_MESE	< @VNNU_MESE and
			DATALENGTH(RTRIM(T1.CO_CNTA_EMPR)) = @INNV_INFO_CNTA and
			T1.TI_AUXI_EMPR IS NULL and
			T1.CO_AUXI_EMPR IS NULL and
			T1.CO_ORDE_SERV IS NULL and
			T1.CO_EMPR = T2.CO_EMPR and
            T1.CO_CNTA_EMPR =  T2.CO_CNTA_EMPR 
		Where	T2.CO_EMPR = @ISCO_EMPR and
			T2.NU_ANNO = 9999 and
			T2.CO_MONE = @ISCO_MONE 
		Group By T2.CO_CNTA_EMPR
        Else If @ISCO_CNTA_EMP1 != '' And @ISCO_CNTA_EMP2 != ''
        Begin 
	Select @ISCO_CNTA_EMP1 = SubString(@ISCO_CNTA_EMP1, 1, @INNV_QUIE_SUPE) 
	Select @ISCO_CNTA_EMP2 = SubString(@ISCO_CNTA_EMP1, 1, @INNV_QUIE_SUPE) 
        Declare CU_TXMVTO_CNTB_Q13_1 Cursor
	For
         Select  CUENTA = T2.CO_CNTA_EMPR, NOMBRE = MAX(RTRIM(T2.DE_CNTA_EMPR)),
                        CARGO_ORIGEN = Isnull(SUM(ISNULL(T1.IM_CARG_ORIG,0)), 0),  
                        ABONO_ORIGEN = Isnull(SUM(ISNULL(T1.IM_ABON_ORIG,0)), 0)
       		From    TMPLAN_EMPR T2
		Left Outer Join TASALD_EMPR T1
		On 	T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR and
			T1.NU_ANNO	= @INNU_ANNO and
			T1.NU_MESE	< @VNNU_MESE and
            DATALENGTH(RTRIM(T1.CO_CNTA_EMPR)) = @INNV_INFO_CNTA and
			T1.TI_AUXI_EMPR IS NULL and
			T1.CO_AUXI_EMPR IS NULL and
			T1.CO_ORDE_SERV IS NULL and
			T1.CO_EMPR = T2.CO_EMPR and
            T1.CO_CNTA_EMPR = T2.CO_CNTA_EMPR 
		Where T2.CO_EMPR = @ISCO_EMPR and
            T2.CO_CNTA_EMPR Between @ISCO_CNTA_EMP1 And @ISCO_CNTA_EMP2 And
			T2.NU_ANNO = 9999 and
			T2.CO_MONE = @ISCO_MONE 
        Group By T2.CO_CNTA_EMPR
	End 
        Open CU_TXMVTO_CNTB_Q13_1
        Fetch CU_TXMVTO_CNTB_Q13_1 Into @CSCO_CNTA, @CSNO_CNTA, @CNIM_CARG, @CNIM_ABON 	While @@Fetch_status = 0
	Begin 

          Select @CSIM_CARG = Convert(Varchar, @CNIM_CARG)
		  Select @CSIM_ABON = Convert(Varchar, @CNIM_ABON)
		  Select @VSNU_MESE = Convert(Varchar, @VNNU_MESE)

          EXEC("Insert Into #TWMVTO_CNTB_Q13_1(NU_MESE_QUIE, " + 
			"CO_CNTA_QUI1, CO_CNTA_QUI2, CO_CNTA_QUI3," + 
			"CO_CNTA_EMPR, DE_CNTA_EMPR, " +
                        "TO_CARG,TO_ABON,NU_MESE,FE_ASTO_CNTB,NU_SECU, " +
                        "CN_CNTB_EMP1,TI_AUXI_EMPR,CO_AUXI_EMPR,CO_UNID_CNTB, " +
                        "CO_OPRC_CNTB,NU_ASTO,TI_DOCU,NU_DOCU,FE_DOCU,IM_MVTO_ORIG,DE_GLOS,DEBE,HABER, " +
			"CO_TABL_ORIG , CO_CLAV_TAOR, CO_ORDE_SERV ) " +
			"Select	Convert(Int, '" + @VSNU_MESE + "'), " + 
			"Replicate(' ', Datalength( '" + @CSCO_CNTA + "')) + '" + @CSCO_CNTA + "', '1', '1', '" +
			@CSCO_CNTA + "', '" + @CSNO_CNTA +  "'," + 
			"Convert(Numeric(16,4), '" + @CSIM_CARG + "')," + "Convert(Numeric(16,4), '" +  @CSIM_ABON + "'), " +
			"NU_MESE, FE_ASTO_CNTB, NU_SECU, CO_CNTA_EMPR, TI_AUXI_EMPR, " +         
                        "CO_AUXI_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO, " +
                        "TI_DOCU, NU_DOCU, FE_DOCU, Round(IsNull(IM_MVTO_ORIG,0),2), DE_GLOS, " +
                        "(ASCII(TI_OPER)/67)*Round(IsNull(IM_MVTO_CNTB,0),2), " +
                        "(65/ASCII(TI_OPER))*Round(IsNull(IM_MVTO_CNTB,0),2), " +
			"CO_TABL_ORIG , CO_CLAV_TAOR, CO_ORDE_SERV  " +
                        "From TXMVTO_CNTB " + 
			"Where	(RTRIM(LTRIM(CO_EMPR)) = '" + @ISCO_EMPR + "' and " +
				"RTRIM(LTRIM(Convert(Varchar, NU_CNTB_EMPR))) = RTRIM(LTRIM('" + @VSNU_CNTB_EMPR + "')) and " +
				"RTRIM(LTRIM(Convert(Varchar, NU_ANNO))) = RTRIM(LTRIM('" + @VSNU_ANNO + "')) and " +
				"RTRIM(LTRIM(Convert(Varchar, NU_MESE))) = RTRIM(LTRIM('" + @VSNU_MESE + "')) and " +
                                "CO_CNTA_EMPR = RTRIM(LTRIM('" + @CSCO_CNTA + "'))  and " +
				"RTRIM(LTRIM(Convert(Varchar,datalength(rtrim(CO_CNTA_EMPR))))) = RTRIM(LTRIM('" + @VSNV_INFO_CNTA + "')) And  " +
				"SI_MVTO_CNTB = 'APR' ) " + @ISCA_WHER)

                if @@rowcount = 0 
                 if (@CNIM_CARG != 0) or (@CNIM_ABON != 0)
                   if (datalength(rtrim(ltrim(@CSCO_CNTA))) = @INNV_INFO_CNTA)
                      Insert Into #TWMVTO_CNTB_Q13_1( NU_MESE_QUIE,
				CO_CNTA_QUI1, CO_CNTA_QUI2, CO_CNTA_QUI3, 				
				CO_CNTA_EMPR, DE_CNTA_EMPR, 
        	                TO_CARG,TO_ABON,NU_MESE ,FE_ASTO_CNTB,NU_SECU, 
	                        CN_CNTB_EMP1,TI_AUXI_EMPR,CO_AUXI_EMPR,CO_UNID_CNTB,
	                        CO_OPRC_CNTB,NU_ASTO,TI_DOCU,NU_DOCU,FE_DOCU,IM_MVTO_ORIG,DE_GLOS,DEBE,HABER,
				CO_TABL_ORIG , CO_CLAV_TAOR, CO_ORDE_SERV )
			 values( @VNNU_MESE, 
				Replicate(' ', Datalength(@CSCO_CNTA)) + @CSCO_CNTA, '1', '1',
				@CSCO_CNTA, @CSNO_CNTA, @CNIM_CARG, @CNIM_ABON,NULL, 
	                        NULL, NULL, @CSCO_CNTA, NULL,  NULL, NULL, NULL, NULL,
                     NULL, NULL, NULL, NULL,NULL, NULL,NULL, NULL , NULL, NULL)

                     if (datalength(rtrim(ltrim(@CSCO_CNTA))) != @INNV_INFO_CNTA) 
	                Insert Into #TWMVTO_CNTB_Q13_1( NU_MESE_QUIE, 
				CO_CNTA_QUI1, CO_CNTA_QUI2, CO_CNTA_QUI3,
				CO_CNTA_EMPR, DE_CNTA_EMPR, 
        	                TO_CARG,TO_ABON,NU_MESE ,FE_ASTO_CNTB,NU_SECU, 
	                        CN_CNTB_EMP1,TI_AUXI_EMPR,CO_AUXI_EMPR,CO_UNID_CNTB,
	                        CO_OPRC_CNTB,NU_ASTO,TI_DOCU,NU_DOCU,FE_DOCU,IM_MVTO_ORIG,DE_GLOS,DEBE,HABER,
				CO_TABL_ORIG , CO_CLAV_TAOR, CO_ORDE_SERV )
			 values( @VNNU_MESE, 
				Replicate(' ', Datalength(@CSCO_CNTA)) + @CSCO_CNTA, '1', '2',
				@CSCO_CNTA, @CSNO_CNTA, @CNIM_CARG, @CNIM_ABON,NULL, 
	                        NULL, NULL, @CSCO_CNTA, NULL,  NULL, NULL, NULL, NULL,
	                        NULL, NULL, NULL, NULL,NULL, NULL,NULL, NULL , NULL, NULL )
         Fetch CU_TXMVTO_CNTB_Q13_1 Into @CSCO_CNTA, @CSNO_CNTA, @CNIM_CARG, @CNIM_ABON
	End
        Close CU_TXMVTO_CNTB_Q13_1
        Deallocate CU_TXMVTO_CNTB_Q13_1

     Select @VNNU_MESE = @VNNU_MESE + 1
    End

End

/*----------ACTUALIZA LOS CARGOS Y ABONOS PARA LAS CUENTAS NO ANALITICAS------------------*/
Declare CU_TXMVTO_CNTB_Q13_2 Cursor For 
Select NU_MESE, CO_CNTA_EMPR
From #TWMVTO_CNTB_Q13_1
Where CO_CNTA_EMPR != @INNV_INFO_CNTA

Open CU_TXMVTO_CNTB_Q13_2
Fetch CU_TXMVTO_CNTB_Q13_2 Into @CNNU_MESE, @CSCO_CNTA

While @@Fetch_status = 0
Begin
Select @VNSU_DEBE = Sum(DEBE), @VNSU_HABE = Sum(HABER) 
From #TWMVTO_CNTB_Q13_1
Where NU_MESE = @CNNU_MESE
And CO_CNTA_EMPR LIKE @CSCO_CNTA + '%'
And CO_CNTA_EMPR != @CSCO_CNTA


Update #TWMVTO_CNTB_Q13_1 Set DEBE = @VNSU_DEBE,
HABER = @VNSU_HABE
Where NU_MESE = @CNNU_MESE
And CO_CNTA_EMPR = @CSCO_CNTA

Fetch CU_TXMVTO_CNTB_Q13_2 Into @CNNU_MESE, @CSCO_CNTA
End
Close CU_TXMVTO_CNTB_Q13_2
Deallocate CU_TXMVTO_CNTB_Q13_2

Insert Into #TWMVTO_CNTB_Q13_1
(NU_MESE_QUIE, CO_CNTA_QUI1, CO_CNTA_QUI2, CO_CNTA_QUI3, CO_CNTA_EMPR, DE_CNTA_EMPR, 
 TO_CARG,TO_ABON,NU_MESE ,FE_ASTO_CNTB,NU_SECU, 
 CN_CNTB_EMP1,TI_AUXI_EMPR,CO_AUXI_EMPR,CO_UNID_CNTB,
 CO_OPRC_CNTB,NU_ASTO,TI_DOCU,NU_DOCU,FE_DOCU,IM_MVTO_ORIG,DE_GLOS,DEBE,HABER,
 CO_TABL_ORIG , CO_CLAV_TAOR, CO_ORDE_SERV)
Select 
NU_MESE_QUIE, CO_CNTA_QUI1, '2', '1', CO_CNTA_EMPR + 'X', DE_CNTA_EMPR, 
 TO_CARG,TO_ABON,NU_MESE ,FE_ASTO_CNTB,NU_SECU, 
 CN_CNTB_EMP1,TI_AUXI_EMPR,CO_AUXI_EMPR,CO_UNID_CNTB,
 CO_OPRC_CNTB,NU_ASTO,TI_DOCU,NU_DOCU,FE_DOCU,IM_MVTO_ORIG,DE_GLOS,DEBE,HABER,
 CO_TABL_ORIG , CO_CLAV_TAOR, CO_ORDE_SERV
From #TWMVTO_CNTB_Q13_1
Where DataLength(CO_CNTA_EMPR) != @INNV_INFO_CNTA

/*-------------------FIN DE ACTUALIZACION PARA CUENTAS NO ANALITICAS*/

/*--------------  D E T A L L A D O --------------*/

If @ISTI_REPO = 'CUD'	/*---- CUENTA ordenado por Unidad -----*/
 Begin
  Select NU_MESE_QUIE, CO_CNTA_QUI1, CO_CNTA_QUI2, CO_CNTA_QUI3, CO_CNTA_EMPR, DE_CNTA_EMPR, TO_CARG, TO_ABON, NU_MESE, 
   convert(varchar(10),FE_ASTO_CNTB,103), NU_SECU, CN_CNTB_EMP1,TI_AUXI_EMPR, 
   CO_AUXI_EMPR, CO_UNID_CNTB,CO_OPRC_CNTB, NU_ASTO, TI_DOCU, NU_DOCU, convert(varchar(10),FE_DOCU,103),
   IM_MVTO_ORIG, DE_GLOS, DEBE, HABER,
   CO_TABL_ORIG , CO_CLAV_TAOR , '', CO_ORDE_SERV   
  From #TWMVTO_CNTB_Q13_1 
  Order By NU_MESE_QUIE, CO_CNTA_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, TI_AUXI_EMPR, CO_AUXI_EMPR
 End	
If @ISTI_REPO  = 'COD'	/*---- CUENTA ordenado por Operacion -----*/
 Begin
   Select NU_MESE_QUIE, CO_CNTA_QUI1, CO_CNTA_QUI2, CO_CNTA_QUI3, CO_CNTA_EMPR, DE_CNTA_EMPR, TO_CARG, TO_ABON, NU_MESE, 
   convert(varchar(10),FE_ASTO_CNTB,103), NU_SECU, CN_CNTB_EMP1,TI_AUXI_EMPR, CO_AUXI_EMPR, 
   CO_UNID_CNTB,CO_OPRC_CNTB, NU_ASTO, TI_DOCU,       
   NU_DOCU, convert(varchar(10),FE_DOCU,103),IM_MVTO_ORIG, DE_GLOS, DEBE, HABER ,
   CO_TABL_ORIG , CO_CLAV_TAOR , '', CO_ORDE_SERV   
   From #TWMVTO_CNTB_Q13_1
  Order By NU_MESE_QUIE, CO_CNTA_EMPR, CO_OPRC_CNTB, CO_UNID_CNTB, TI_AUXI_EMPR, CO_AUXI_EMPR
 End	
If @ISTI_REPO = 'CVD'	/*---- CUENTA ordenado por Voucher -----*/
 Begin
  Select NU_MESE_QUIE, CO_CNTA_QUI1, CO_CNTA_QUI2, CO_CNTA_QUI3, CO_CNTA_EMPR, DE_CNTA_EMPR, TO_CARG, TO_ABON, NU_MESE, 
   convert(varchar(10),FE_ASTO_CNTB,103), NU_SECU, CN_CNTB_EMP1,TI_AUXI_EMPR, CO_AUXI_EMPR, 
   CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO, TI_DOCU, NU_DOCU, convert(varchar(10),FE_DOCU,103), 
   IM_MVTO_ORIG,DE_GLOS, DEBE, HABER, CO_TABL_ORIG, CO_CLAV_TAOR, '',CO_ORDE_SERV   
   From #TWMVTO_CNTB_Q13_1
  Order By NU_MESE_QUIE, CO_CNTA_EMPR, NU_ASTO, CO_UNID_CNTB, CO_OPRC_CNTB, TI_AUXI_EMPR, CO_AUXI_EMPR
 End	
If @ISTI_REPO = 'CFD'	/*---- CUENTA ordenado por Fecha -----*/
 Begin
  Select NU_MESE_QUIE, CO_CNTA_QUI1, CO_CNTA_QUI2, CO_CNTA_QUI3, CO_CNTA_EMPR, DE_CNTA_EMPR, TO_CARG, TO_ABON, NU_MESE, 
  convert(varchar(10),FE_ASTO_CNTB,103), NU_SECU, CN_CNTB_EMP1,TI_AUXI_EMPR, CO_AUXI_EMPR, 
  CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO, TI_DOCU, NU_DOCU, convert(varchar(10),FE_DOCU,103),
  IM_MVTO_ORIG, DE_GLOS, DEBE, HABER,CO_TABL_ORIG , CO_CLAV_TAOR , '', CO_ORDE_SERV   
  From #TWMVTO_CNTB_Q13_1
  Order By NU_MESE_QUIE, CO_CNTA_EMPR, FE_ASTO_CNTB, CO_UNID_CNTB, CO_OPRC_CNTB, TI_AUXI_EMPR, CO_AUXI_EMPR
 End	
/*--------------  R E S U M E N  --------------*/
If @ISTI_REPO = 'CUR'	/*---- CUENTA ordenado por Unidad -----*/
 Begin
  Select NU_MESE_QUIE, CO_CNTA_EMPR,DE_CNTA_EMPR, MAX(TO_CARG), MAX(TO_ABON),
         CO_CNTA_EMPR,DE_CNTA_EMPR, Isnull(SUM(Isnull(DEBE, 0)), 0), Isnull(SUM(Isnull(HABER, 0)), 0)    
   From #TWMVTO_CNTB_Q13_1
   Group By NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR
   Order By NU_MESE_QUIE, CO_CNTA_EMPR
 End	
If @ISTI_REPO = 'COR'	/*---- CUENTA ordenado por Operacion -----*/
 Begin
  Select NU_MESE_QUIE, CO_CNTA_EMPR,DE_CNTA_EMPR, MAX(TO_CARG), MAX(TO_ABON), CO_CNTA_EMPR,
       DE_CNTA_EMPR, Isnull(SUM(Isnull(DEBE, 0)), 0), Isnull(SUM(Isnull(HABER, 0)), 0)    
  From #TWMVTO_CNTB_Q13_1
  Group By NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR
  Order By NU_MESE_QUIE, CO_CNTA_EMPR
 End	
If @ISTI_REPO = 'CVR'	/*---- CUENTA ordenado por Voucher -----*/
   Begin
     Select NU_MESE_QUIE, CO_CNTA_EMPR,DE_CNTA_EMPR, MAX(TO_CARG), MAX(TO_ABON), 
            CO_CNTA_EMPR,DE_CNTA_EMPR, Isnull(SUM(Isnull(DEBE, 0)), 0), Isnull(SUM(Isnull(HABER, 0)), 0)    
 From #TWMVTO_CNTB_Q13_1
     Group By NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR
     Order By NU_MESE_QUIE, CO_CNTA_EMPR
   End	
If @ISTI_REPO = 'CFR'	/*---- CUENTA ordenado por Fecha -----*/
   Begin
   Select NU_MESE_QUIE, CO_CNTA_EMPR,DE_CNTA_EMPR, MAX(TO_CARG), MAX(TO_ABON), 
            CO_CNTA_EMPR,DE_CNTA_EMPR, Isnull(SUM(Isnull(DEBE, 0)), 0), Isnull(SUM(Isnull(HABER, 0)), 0)    
     From #TWMVTO_CNTB_Q13_1
    Group By NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR
    Order By NU_MESE_QUIE, CO_CNTA_EMPR
   End	
return

/*----------------------------------- Fin -----------------------------------*/



GO
